home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / SECURITY / MNGLR140 / READ.ME < prev    next >
Text File  |  1996-05-01  |  6KB  |  172 lines

  1. Program     : Mangler
  2. Version     : 1.36
  3. Release date: 1996 apr 17
  4.  
  5.  
  6. Written by: Berend de Boer, write to
  7.               compuserve: 100120,3121
  8.               email     : 100120.3121@compuserve.com
  9.               fidonet   : 2:281/527.23
  10.               fax       : +31 (0)418-562593
  11.  
  12.  
  13. Copyright : (c) Copyright 1993-1996 by Berend de Boer
  14.  
  15.  
  16. What this program does
  17. ~~~~~~~~~~~~~~~~~~~~~~
  18. This program mangles the Turbo Pascal source code for a unit so it will
  19. be unreadable (or very hard) for humans. The compiler should still be
  20. able to compile it without any problems or lost functionality. The
  21. program does so by:
  22.  
  23. 1. converting all non-exported symbols to a random combination of 'O',
  24.    'I', '1', 'l' and '0'.
  25. 2. Removing most white space
  26. 3. Removing all comments
  27. 4. Packing as many pascal code on a given line as possible
  28.  
  29. This program can compile the vast majority of units (including units
  30. that use BASM or inline code), a few special cases are not catered for.
  31. See BUGS.TXT for units this program can't compile. If you have a unit
  32. that mangler cannot compile, please write me.
  33.  
  34. The output of mangler consists of:
  35. - the interface section of the mangled unit, just as it appears in your
  36.   code, so without *any* modification
  37. - the mangled implementation section
  38.  
  39.  
  40. Where is it good for
  41. ~~~~~~~~~~~~~~~~~~~~
  42. o if you are tired of having to supply hunders of .tp?'s with your
  43.   package
  44. o if you want users which changed interface sections of the rtl to
  45.   compile your units too
  46. o if you have source code that you want to release as shareware and only
  47.   registered user's should have the real source
  48. o if only mangled source may be released due to copyrights conflicts
  49.   that could possibly otherwise arise
  50. o to test pascal source code beautifiers.
  51.  
  52.  
  53. How to use this program
  54. ~~~~~~~~~~~~~~~~~~~~~~~
  55. Simply saying
  56.  
  57.   MANGLER MYFILE.PAS MYFILE.OUT
  58.  
  59. will mangler the file myfile.pas to myfile.out.
  60. Wildcards are supported also, so you can type
  61.  
  62.   MANGLER *.PAS *.OUT
  63.  
  64. too.
  65. See TEST.PAS and TEST.OUT for a sample of an unmangled and mangled unit.
  66.  
  67.  
  68. License
  69. ~~~~~~~
  70. See LICENSE.TXT for details.
  71.  
  72.  
  73. The cost of this program
  74. ~~~~~~~~~~~~~~~~~~~~~~~~
  75. This program is free for public domain or shareware packages. Commercial
  76. firms should write me for the cost of the program. Mangler's cost
  77. depends on your size and how many packages you are selling.
  78.  
  79.  
  80. Bugs
  81. ~~~~
  82. This product is *NOT* bugfree. For more details see BUGS.TXT.
  83.  
  84.  
  85. The source code
  86. ~~~~~~~~~~~~~~~
  87. The complete source code for mangler is provided with this package. It
  88. is MANGLER.L and ASMLEX.L. You need the Lex program from Albert Graef,
  89. version 3.0 or higher to convert these lex programs to Turbo Pascal
  90. before you can compile them. You also need TP7 or BP7. This program
  91. compiles and runs both under real and protected mode.
  92. The Lex program from Albert Graef can probably be found on
  93. garbo.uwasa.fi in the /pc/turbopas/ directory. It should be called
  94. tply.zip (or so) for the program and tplysrc.zip (or so) for the source.
  95.  
  96.  
  97. Acknowledgements
  98. ~~~~~~~~~~~~~~~~
  99. Foremost thanks to Albert Graef for his excellent Lex (and Yacc)
  100. package. Without it it is impossible to write a mangler is my firm
  101. belief.
  102. I would like to acknowledge Scott Dudley for the license provided with
  103. his Squish program which I've used for Mangler. Scott Dudley himself
  104. acknowlegde Richard Stallman of the Free Software Foundation for most of
  105. the wording of that license.
  106.  
  107. I would like to thank Prof. Timo Salmi from the University of Vaasa,
  108. Finland, also of his suggestions and effort to run mangler on his
  109. well known collection of pascal routines. He also suggested many
  110. improvements.
  111. Also thanks to Julian Bucknall [100116,1572] of TurboPower, who send
  112. me some really nasty bugs which kept me busy for hours :-)
  113.  
  114.  
  115. History
  116. ~~~~~~~
  117. 93-03-30  Release 1.00
  118. 93-04-19  Release 1.10
  119.             - reported bugs fixed (see also MANGLER.L)
  120.             - added ampersand override recognizing
  121. 93-07-19  Release 1.13
  122.             - splitted MANGLER.L into MANGLER.PAS and PASLEX.L
  123.             - fixed bugs reported by Richard Hansen
  124. 93-09-29  Release 1.14
  125.             - fixed the procedure type bug
  126. 93-11-08  Release 1.15
  127.             - bugs reported by Timo Salmi
  128.               - real numbers were not handled correctly
  129. 93-11-19  Release 1.20
  130.             - interface not mangled anymore
  131.             - label statements were not parsed correctly, reported by
  132.               Timo Salmi.
  133. 93-11-24  Release 1.21
  134.             - when source and destination file are the same this is now
  135.               detected. Sucn files are skipped.
  136.             - not all files opened were closed (oops!).
  137.             - crunching part changed a bit. Tpc choked on #10 ended
  138.               lines.
  139. 93-11-25  Release 1.22
  140.             - variant records broke Mangler
  141. 93-12-11  Release 1.23
  142.             - bugs fixed.
  143. 94-01-22  Release 1.30
  144.             - mangler now parses the interface to be able to correctly
  145.               mangle complex variables. It should now be able to mangle
  146.               almost all source.
  147.               It seems great, but it isn't fully tested yet. Be warned!
  148. 94-03-21  Release 1.31
  149.             - bugs reported by Julian Bucknall [100116,1572]
  150.               - variant records were not recognized
  151.               - procedure types in the implementation section broke mangler
  152. 94-04-01  Release 1.32
  153.             - variant records were still not parsed correctly
  154.             - array subscription in between with .. do was not recognized
  155.             - some other bugs were removed or I removed simply bugs I
  156.               created when updating mangler for the above errors
  157. 94-10-10  Release 1.33
  158.             - fixed bug involving constant arrays
  159.             - Scopes defined in a certain function were not removed after
  160.               the function ended. For very specific cases this caused
  161.               a quite strange bug to occur. Mangler now uses less memory
  162.               also.
  163. 94-10-22  Release 1.34
  164.             - fixed bug introduced in 1.33
  165. 94-10-25  Release 1.35
  166.             - enumerated types in records were not corectly handled
  167. 96-04-18  Release 1.40
  168.             - handles type casts better
  169.             - handles forward pointers
  170.             - handles pointer derefences better
  171.             This means the bugs.txt list has shrunk somewhat!
  172.